using System;

namespace Web.App.Infrastructure.ObjectStore.Contracts
{
    public class ObjectStoreItem
    {
        Guid id;
        object data;
        DateTime addedAt;
        Type dataType;
        private string description;

        public ObjectStoreItem(Guid id, object data, DateTime addedAt, Type dataType, string description)
        {
            this.id = id;
            this.description = description;
            this.dataType = dataType;
            this.addedAt = addedAt;
            this.data = data;
        }

        public ObjectStoreItem(){}

        public virtual string Description
        {
            get { return description; }
            set { description = value; }
        }

        public virtual Guid Id
        {
            get { return id; }
            private set { id = value; }
        }

        public virtual object Data
        {
            get { return data; }
            set { data = value; }
        }
        
        public virtual DateTime AddedAt
        {
            get { return addedAt; }
            set { addedAt = value; }
        }

        public virtual Type DataType
        {
            get { return dataType; }
            private set { dataType = value; }
        }
    }
}